public class 三傻排序 {

    public static void swap(int[] arr, int i, int j) {
        int tmp = arr[i];
        arr[i] = arr[j];
        arr[j] = tmp;
    }
    //选择排序
    public static void selectionSort(int[] arr){
        if(arr.length < 2 || arr == null){
            return;
        }
        for (int i = 0; i < arr.length; i++) {
            int minIndex = i;
            for (int j = i + 1; j < arr.length; j++) {
                if(arr[minIndex] > arr[j]){
                    minIndex = j;
                }
            }
            swap(arr,i,minIndex);
        }
    }

    //冒泡排序
    public static void bubbleSort(int[] arr){
        if(arr.length < 2 || arr == null){
            return;
        }
        for (int i = arr.length - 1; i >= 0 ; i--) {
            for (int j = 0; j < i; j++) {
                if(arr[j] > arr[j + 1]){
                    swap(arr,j,j + 1);
                }
            }
        }
    }

    //插入排序
    public static void insertionSort(int[] arr) {
        if(arr.length < 2 || arr == null){
            return;
        }
        //0 - i
        for (int i = 1; i < arr.length; i++) {
            for (int j = i- 1; j >= 0 ; j--) {
                if(arr[j] > arr[j + 1]){
                    swap(arr,j,j + 1);
                }
            }
        }
    }

    public static void main(String[] args) {
        int[] arr = {2,5,8,3,2,5,6,8,4,43,3,2,1,1};
        selectionSort(arr);
            System.out.println(arr);
    }
}
